This invention relates to a computer-based system and to a related methodology which enable a user to perform pre-printing, plural-parameter, anti-clipping color correction of a selected color image. More particularly, it pertains to such a system and methodology which operate under user control through the graphic interface provided by a print driver that is to be employed to control the printing of such an image. The “invention” as employed herein has a plurality meaning which embraces multiple disclosed and perceivable embodiments and manners of proficiency.
As computers and user-friendly computer processing have become more and more regularly involved in people's daily lives, such involvement has generated a fast-rising interest in do-it-yourself color-image processing, such as photo-image processing. Expanding computer-friendly sophistication indeed has promoted individuals' desires to self-perform more than just very modest and simple color processing, and in fact to perform quite elaborate processing without having to engage a difficult “learning curve” to avoid tonal clipping tangles and mishaps.
The present invention, disclosed herein, particularly in its best mode configuration, in an environment of simplicity, versatility and sophistication, effectively addresses such users' current growing interests in performing elaborate color-image processing, and does so in a manner which guards against undesirable mishaps such as color and/or tone-scale clipping. Such clipping, which occurs when a key color parameter creates pixel values that lie outside an acceptable intensity value range (computer scale range 0–255) can all too easily and unexpectedly bloom because of the fact that various different color-affecting parameters are interlinked and interdependent in ways that are complex, cross-magnifying, and not necessarily intuitive.
According to the preferred forms and best mode of the system and the related methodology of this invention, the invention offers a color-image printing setting wherein, within the graphic interface of a print driver, a user is furnished a family of different virtual-slider, color-parameter controllers that allow for “large range” parameter-value adjustments, without there being any possibility for any pattern of slider adjustments to create clipping of the types just mentioned above. These controllers or controls, are also referred to herein as value adjusters, as change-value color controls, as color-adjustment controls, and as color-parameter controls. The particular parameters so accommodated include (1) Red offset (ΔR), (2) Green offset (ΔG), (3) Blue offset (BΔ), (4) Chroma (c) (saturation), (5) Lightness offset (ΔL), and (6) Gamma (G) (contrast). While virtual sliders are specifically illustrated, modified controllers of various different virtual kinds could be used as well. The driver also furnishes the user with a preview sub-screen in which there is presented a limited-pixel-count sub-sample of the original of the full-pixel version of an image selected for processing and printing.
These controllers visually allow for associated parameter-value adjustments to be made in the preview image sub-sample within a positive input range of 0–100, which range is equation-related, as will later be explained, to the traditional computer-scale range of 0–255, or at least to a portion of that scale range. The 0–100 input range has been selected for best mode implementation of the invention because of its intuitive convenience. Those skilled in the art will certainly recognize, however, that different controller scales could be employed. For each parameter, the associated input and computer-scale ranges are directly, though not in each case linearly, related to a defined, modified parameter code-value range, from within which range output pixel values are calculated for assessment-modification of the preview image sub-sample created in accordance with the invention. All parameters except the Gamma parameter possess such a range relationship which is linear. As a controller slider for a parameter is “moved” throughout the input range of 0–100, new parameter output values (from the controller) relatedly follow this movement with values drawn from the associated parameter code-value range. Calculated, related color changes appear in the image sub-sample.
Of all of the six mentioned parameters, the Chroma parameter is the one with respect to which the most mischievous clipping problems are associated. Accordingly, the practice of the present invention treats adjustments made to this parameter in a special preliminary manner (first-level attention) before creating ultimate final pixel-output intensity values resulting from dealing collectively with all six of the named parameters. Chroma values are firstly processed, as will be explained and illustrated below, in a special 3×3 mathematical matrix for each of the three colors Red, Green, and Blue. The matrix preserves the neutral colors with Chroma user-settings that increase or decrease prospective color saturation.
These matrix-processed Chroma values are then operatively “combined”, in either one of two, different manners (in accordance with two different embodiments of the invention), with the other five parameter values (second-level attention) in a special anti-clipping algorithm (or structure) which, in what is referred to herein as an asymptotic-like governance manner, controls algorithm output pixel values so as to prevent such values from going beyond the desired computer-scale range of 0–255. This algorithm, which thus acts as an asymptotic-like limit structure, allows output parameter values gracefully to approach, and even to reach, but not to go beyond, the 0–255 range limits. In one of the above-mentioned, two, different embodiments of the invention, a selected and matrix-processed Chroma value is simply directly inserted as a term in two different “arguments” that form parts of the mentioned algorithm. In the other embodiment, such a selected, matrix-processed Chroma value is also inserted into the same two just-mentioned “arguments” as components of a new cubic term (twice appearing in the algorithm) which is not employed in the first-mentioned algorithm embodiment. This added cubic term, which introduces a slight amount of additional algorithmic processing time, is nonetheless useful in certain instances to enhance the manner in which ultimate algorithmic output values behave asymptotically. The mentioned matrix and algorithm collectively constitute output control structure.
During image adjustment/correction activity, each set of controller output parameter values is applied through calculation to the image presented in the preview sub-screen provided by the print driver in the associated graphic user interface. Such value applications change the color character of the preview image so as to inform the user about the expected effects of parameter changes.
When the user is satisfied with the look of the modified sub-sample image so presented, the controller sliders are left fixed in their then positions, and the anti-clipping algorithm is employed for another purpose. More specifically, this other purpose takes hold when the satisfied user issues a print command. When that occurs, appropriate, computation-time-saving, one-dimensional look-up tables for the three colors are generated. This is done by employing the anti-clipping algorithm to calculate, for each color, a set of output values resulting from stepping one of the constituent variables, called “input”, in the algorithm seriatim through a range of selected code-value numbers, such as from −250 to +500. These range numbers each stands as an arbitrary surrogate in the place (in the algorithm) of a Chroma matrix output value. The algorithm output values so calculated for a given color effectively “say”: For an algorithm “input” value of Xn, the correct output value for this pixel color is Yn. These calculated algorithm output values form the look-up tables, which values, of course, take directly into account the appropriate ΔR, ΔG, ΔB, ΔL and G controller values which the user has previously determined are acceptable. (Recall that the desired ΔR, ΔG, ΔB, ΔL and G controller values have been held fixed during the time period of look-up table generation).
With the look-up tables thus created, the full original image (all pixels) is effectively run through both the Chroma matrix and the color look-up tables, with the Chroma matrix now employing the previously pre-set Chroma parameter value (c) established during assessment-operation of the virtual slider parameter controllers. This “run-through” information is sent to the appropriate printing device's print controller for final color-corrected image output printing.
The invention thus proposes a computer-based print-driver-controlled system and methodology which offer to a user, in the graphic interface of a print driver, virtual controls, such as “grab-and-adjust” manipulable sliders, to vary (1) Red, Green, Blue, and/or Lightness offsets, (2) Gamma (contrast), and (3) Chroma (saturation). The print driver also furnishes an image preview sub-screen wherein the expected effects of parameter valuation can be observed.
In the context of the preliminarily matrixed Chroma adjustment(s), all other parameter-variation values are processed to finality, on a pixel-by-pixel basis, and in an asymptotic-like manner to prevent color and/or tone-scale clipping. These finality values are prepared for use in the efficient form of the mentioned three, one-dimensional look-up tables related to the three colors Red, Green and Blue. User-invoked color modifications (corrections) are presented, prior to printing, in the driver-furnished preview image sub-screen. This, of course, handily permits a user to approve an expected “corrected” outcome in a to-be-printed image before printing begins. If the user notes any aspect of such a preview which does not seem desirable, the user may then simply continue to apply corrective controls through the virtual control sliders provided according to the invention by the print-driver graphic interface. Thus, the invention readily accommodates clipping-free interactive decision making and corrective color implementation by a user.
Within the descriptive text which follows below, and in the drawing figures, certain word and character designators are employed as follows:                R—Original Image Red pixel values        G—Original Image Green pixel values        B—Original Image Blue pixel values        R′—Chroma-matrix processed Red pixel values        G′—Chroma-matrix processed Green pixel values        B′—Chroma-matrix processed Blue pixel values        ΔR—Slidebar controller modified Red offset pixel values        ΔG—Slidebar controller modified Green offset pixel values        ΔB—Slidebar controller modified Blue offset pixel values        ΔL—Slidebar controller modified Lightness offset pixel values        G—Slidebar controller modified Gamma pixel values        c—Adjusted Red, Green or Blue Chroma values which result from use of the provided virtual Chroma parameter slidebar controller, and which are supplied to and processed in the mathematical Chroma matrix.        Input—A Red, Green or Blue Chroma-matrix processed pixel value which is supplied to and processed in the asymptotic-like anti-clipping algorithm.        
These and other significant features and advantages which are offered by the system and method of this invention will become more fully apparent as the descriptions thereof which now follow are read in conjunction with the accompanying drawings.